import axios from 'axios' 
import loading from './loading'
import { ElMessage, ElMessageBox } from 'element-plus'
import { login } from '@/api'

// 创建 axios 实例
const service = axios.create({
  baseURL: '/api',
  timeout: 60000
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 从 localStorage 获取 token
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }

    // 显示 loading（除非配置中指定不显示）
    // if (config.loading !== false) {
    //   loading.show()
    // }

    return config
  },
  error => {
    loading.hide()
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 如果请求配置中有 loading，则隐藏 loading
    if (response.config.loading !== false) {
      loading.hide()
    }

    const { code, data, message } = response.data
    if(code === 40100){
      ElMessageBox.confirm('请先点击按钮登录', '提示', {
        confirmButtonText: '登录',
        cancelButtonText: '取消',
        type: 'warning'
      }).then( async () => {
        const res = await login({
          userAccount: 'admin',
          userPassword: '12345678'
        })
        console.log(res)
        ElMessage.success('登录成功')
      }).catch(() => {
     
      } )
    }

    // 如果 code 不为 0，说明请求出错
    if (code !== 0) {
      ElMessage.error(message || '请求失败')
      return Promise.reject(new Error(message || '请求失败'))
    }

    return data
  },
  error => {
    // 隐藏 loading
    loading.hide()

    // 显示错误信息
    ElMessage.error(error.response?.data?.message || '请求失败')
    return Promise.reject(error)
  }
)

export default service




